/**メインにしてタイトル画面です*/
package abcrecipe.sysabc;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import abcrecipe.sysabc.Menu_history.CustomAdapter;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class Menu_all extends Activity implements OnClickListener, OnItemClickListener{
	/** Called when the activity is first created. */
	// リストビューに表示するデータ
	// TEST:とりあえずテストデータ。メニューファイルから読んだメニュー名を表示する
	String[] words = new String[] { 
	        "鶏肉とモヤシのオイスター炒め",
	        "チキンのピカタ",
	        "かつおのユッケ風ごはん", 
	        "タラのムニエル～タルタルソース添え",
	        "コーン入りチキンナゲット",
	        "甘みそソースチキンカツ",
	        "ブルーベリーチーズケーキ",
	        "豆乳抹茶ゼリー",
	        "ゴールドキウイラッシー",
	        "トマトとオレンジのデザートスープ", 
    };
	int[] price  = new int[] { 
			1000,
			780,
			500,
			1000,
			500,
			500,
			380,
			380,
			480,
			280,
	    }; 
    // リストビューにアイコンのリソースID
	int[] c_icon = new int[] { 
        R.drawable.ic_menu01,
        R.drawable.ic_menu02,
        R.drawable.ic_menu03,
        R.drawable.ic_menu04,
        R.drawable.ic_menu05,
        R.drawable.ic_menu06,
        R.drawable.ic_menu07,
        R.drawable.ic_menu08,
        R.drawable.ic_menu09,
        R.drawable.ic_menu10,
    }; 

	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu_all);

        /**前画面に戻る*/
        Button backBtn = (Button)findViewById(R.id.back_button);
        backBtn.setOnClickListener(this);

        /**発注詳細*/
        Button orderinfoBtn = (Button)findViewById(R.id.orderInfo_button);
        orderinfoBtn.setOnClickListener(this);

        /**メニュー1ボタン*/
//        ImageButton menuBtn = (ImageButton)findViewById(R.id.imageButton1);
//        menuBtn.setOnClickListener(this);
        /**メニュー一覧*/
        // データを格納するためのArrayListを宣言
        ArrayList<HashMap<String, Object>> data
			= new ArrayList<HashMap<String, Object>>();
        
		// 10ヶ国分繰り返し
        for(int i = 0; i< 10; i++){
        	HashMap<String, Object> map =
				new HashMap<String, Object>();
				
        	// メニュー名をmapに代入
        	map.put("menuname", words[i]);
        	
        	// アイコンをmapに代入
        	map.put("app_icon", c_icon[i]);
        	
        	// 作成したmapをdataに追加
        	data.add(map);
         }
        
        /*
		 * 作成したdataとカスタマイズしたレイアウトmenu_all_list.xmlを
         * 紐付けたCustomAdapterを作成する
         */
        CustomAdapter ca =
			new CustomAdapter(this, data, R.layout.menu_all_list, 
                new String[]{"menuname", "app_icon"},
                new int[]{R.id.menu_name_textView,R.id.menu_imageView}
        );
        
        // main.xmlのListViewにcaをセットします。
        ListView lv = (ListView)findViewById(R.id.MenuAll_listView);
        lv.setAdapter(ca);
//////////////////////////////////////        
        // リスナーを登録する
        lv.setOnItemClickListener(this);

    }

    // onItemClickをオーバーライドする
    public void onItemClick(
        AdapterView<?> parent, 
        View view, int position, long id) {
    	
		Intent intentMenuDetail = new Intent(Menu_all.this, Menu_Detail.class);
		// メニュー番号を渡す。次ページでメニュー名に変換する。 
		intentMenuDetail.putExtra("MenuNum", position);
		startActivity(intentMenuDetail);		
    }
    	
    //全てのクリック処理を一括して管理する
    public void onClick(View v){
    	switch(v.getId()){

    	case R.id.back_button:
//    		// インテントのインスタンス生成
//    		Intent intent4 = new Intent(Menu_all.this, Menu_history.class);
//    		// 次画面のアクティビティ起動
//    		startActivity(intent4);
    		//今の画面を終了して前の画面に戻る
    		finish();
    		break;

    	case R.id.orderInfo_button:
    		// インテントのインスタンス生成
    		Intent intent5 = new Intent(Menu_all.this, Result.class);
    		// 次画面のアクティビティ起動
    		startActivity(intent5);
    		break;

//    	case R.id.imageButton1:
//    		// インテントのインスタンス生成
//    		Intent intent6 = new Intent(Menu_all.this, Recipe1_activity.class);
//    		// 次画面のアクティビティ起動
//    		startActivity(intent6);
//    		break;

    	default:
    		break;
    	}

    }
////////////////
    //SimpleAdapterを継承したCustomAdapterを作成します
    public class CustomAdapter extends SimpleAdapter{
    	LayoutInflater mLayoutInflater;
    	
    	// コンストラクター
		public CustomAdapter(
			Context context,
			List<? extends Map<String, ?>> data, 
			int resource,
			String[] from, int[] to) {
			super(context, data, resource, from, to);
		}
    	@Override
    	public View getView(
			int position, View convertView, ViewGroup parent) {
    		mLayoutInflater =
				LayoutInflater.from( getBaseContext() );
				
			// レイアウトにrow.xmlを紐付ける
    		convertView =
				mLayoutInflater.inflate(
					R.layout.menu_all_list, parent, false);
    		ListView listView = (ListView) parent;
    		
    		// 該当する位置のデータを取得する
    		Map<String, Object> data = 
				(Map<String, Object>) 
					listView.getItemAtPosition(position);
    		
//    		TextView countrycode =(TextView) 
//				convertView.findViewById(R.id.year_textView);
//    		countrycode.setText( 
//				(String) data.get("year") );
//				
    		
    		// メニュー名をTextViewにセットする
    		TextView titleofmenuname = (TextView) 
				convertView.findViewById(R.id.menu_name_textView);
    		titleofmenuname.setText( 
				(String) data.get("menuname") );
				
    		// 値段をTextViewにセットする
    		TextView pricefield = (TextView) 
				convertView.findViewById(R.id.menuPrice_textView);
    		pricefield.setText(String.valueOf(price[position]));
				
			// アイコンをImageViewにセットする
    		ImageView app_icon = (ImageView) 
				convertView.findViewById(R.id.menu_imageView);
    		app_icon.setImageResource( 
				(Integer) data.get("app_icon") );

    		return convertView;
    	}
    
    }
    
//////////////////////
    
}
